package configuration

import (
	"encoding/json"
	"fmt"
	"kop/modules/configuration/client"
	"kop/util/log"
)

var (
	KidAwards   []KidAward
	GardenSeats = make(map[int32]GardenSeat)
)

func init() {

	var err error
	if err := json.Unmarshal(client.Load("GardenAward"), &KidAwards); err != nil {
		panic(err)
	}

	log.Info("Load GardenAward.json success.")

	//********************************************************************//

	//********************************************************************//

	if err = json.Unmarshal(client.Load("GardenCost"), &GardenSeats); err != nil {
		panic(err)
	}

	log.Info("Load GardenCost.json success.")
}

type (
	KidAward struct {
		ID       int32 // 索引ID：无含义
		CountMax int32 // 次数最大
		AwardID  int32 // 奖励ID
	}

	GardenSeat struct {
		Num  int32 `json:"ID"` // 当前位置数
		Cost int32 // 新增位置钻石消耗
	}
)

// 调戏次数对应的奖励ID
func GetByKidNum(n int32) int32 {

	for _, v := range KidAwards {
		if n <= v.CountMax {
			return v.AwardID
		}
	}

	panic(fmt.Errorf("kid num err: [%d]", n))
}

// 升级花园软禁位需要的钻石
func GetByGardenNum(n int32) int32 {

	var conf, ok = GardenSeats[n]
	if !ok {
		panic(fmt.Errorf("GardenSeat num err: [%d]", n))
	}

	return conf.Cost
}
